package fr.grobim.hangovers.gestionBudget.actions.champs.factures;

import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;

import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;

import fr.grobim.hangovers.gestionBudget.beans.comptes.Membre;
import fr.grobim.hangovers.gestionBudget.beans.factures.Facture;
import fr.grobim.hangovers.gestionBudget.beans.factures.ReglementFacture;

public class ReglementFactureChamps {
	
	private Integer id;
	
	private Integer factureId;
	
	private Integer idPayeur;
	
	private String montant;
	
	private Date dateReglement;
	
	private String membresSelectionnes;
	
	private List<Integer> listMembresSelectionnes;
	
	public ReglementFactureChamps() {
		Calendar cal = Calendar.getInstance();
		cal.set(Calendar.DAY_OF_MONTH, 1);
		this.dateReglement = cal.getTime();
	}
	
	public ReglementFactureChamps(Facture facture) {
		this();
		this.factureId = facture.getId();
		this.idPayeur = facture.getPayeurParDefaut().getId();
		if (facture.getMontantDeBase() != null) {
			this.montant = facture.getMontantDeBase().toString();
		} else {
			this.montant = StringUtils.EMPTY;
		}
		this.listMembresSelectionnes = new ArrayList<Integer>();
		if (CollectionUtils.isNotEmpty(facture.getMembresConcernesParDefaut())) {
			for (Membre membreParDefaut : facture.getMembresConcernesParDefaut()) {
				this.listMembresSelectionnes.add(membreParDefaut.getId());
			}
		}
	}
	
	public ReglementFactureChamps(ReglementFacture reglementFacture) {
		this.id = reglementFacture.getId();
		this.factureId = reglementFacture.getFacture().getId();
		this.idPayeur = reglementFacture.getPayeur().getId();
		this.montant = reglementFacture.getPrix().toString();
		this.dateReglement = reglementFacture.getDatePayement();
		this.listMembresSelectionnes = new ArrayList<Integer>();
		if (CollectionUtils.isNotEmpty(reglementFacture.getMembreConcernes())) {
			for (Membre membreConcerne : reglementFacture.getMembreConcernes()) {
				this.listMembresSelectionnes.add(membreConcerne.getId());
			}
		}
	}

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public Integer getFactureId() {
		return factureId;
	}

	public void setFactureId(Integer factureId) {
		this.factureId = factureId;
	}

	public Integer getIdPayeur() {
		return idPayeur;
	}

	public void setIdPayeur(Integer idPayeur) {
		this.idPayeur = idPayeur;
	}

	public String getMontant() {
		return montant;
	}

	public void setMontant(String montant) {
		this.montant = montant;
	}

	public Date getDateReglement() {
		return dateReglement;
	}

	public void setDateReglement(Date dateReglement) {
		this.dateReglement = dateReglement;
	}

	public String getMembresSelectionnes() {
		return membresSelectionnes;
	}

	public void setMembresSelectionnes(String membresSelectionnes) {
		this.membresSelectionnes = membresSelectionnes;
	}

	public List<Integer> getListMembresSelectionnes() {
		return listMembresSelectionnes;
	}

	public void setListMembresSelectionnes(List<Integer> listMembresSelectionnes) {
		this.listMembresSelectionnes = listMembresSelectionnes;
	}

}
